TV services broadcast over an IP network are referred to as IPTV. IPTV is typically broadcast using a broadband access network, in which channels are transmitted over a broadband network from a super head-end down to an end-user's set top box (STB).
Linear content delivery, in which all channels in a subscription are simultaneously delivered to a user's set top box (STB), is not suitable for IPTV, as IPTV has limited bandwidth available over a broadband connection. A typical ADSL broadband connection provides a capacity of between 3 and 8 Mbps, and ADSL2 promises to deliver up to 25 Mbps downstream, whereas VDSL can provide a capacity of greater than 30 Mbps. Standard quality MPEG 2 IPTV content requires 2 Mbps per channel, and HDTV will require around 8-10 Mbps per channel. The MPEG 4 standard will approximately halve the bandwidth required to deliver IPTV content with the same quality. Nevertheless, the available bandwidth is a scarce resource, and IPTV solutions must limit the number of channels that can be delivered simultaneously.
FIG. 1 illustrates a known way of distributing media in which an IPTV media stream originates in a service provider network 1, is passed to a core network 2, is further passed into a metro network 3, and finally is sent via access networks 4 to each home network 5 that contains an STB that wishes to receive the media stream. Networks can quickly become saturated due to heavy traffic loads. In order to mitigate this problem, content can be multicast to reduce bandwidth demands for broadcast TV distribution. Furthermore, Video on Demand (VoD) services can be handled by VoD cache servers located close to the end-user. However, such caches require additional investment, and many routers would need to be replaced, as existing routers may not support IPTV multicasts.
It is known to distribute an IPTV service using a Peer to Peer (P2P) network, as illustrated in FIG. 2. Each STB is a peer in the network. An IPTV media stream can be delivered to a STB from another STB, from a media injector from which the stream originates, or from any other peer in the network.
An IPTV media stream is typically compressed in order to save bandwidth. An example of a compressed media format is MPEG. MPEG media streams contain different frames, such as I-frames, P-frames and B-frames. I-frames do not depend on data contained in the preceding or following frames, as they contain a complete picture. P-frames provide more compression than I-frames because they utilize data contained in the previous I-frame or P-frame. When generating a P-frame, the preceding frame is reconstructed and altered according to incremental extrapolation information. B-frame are similar to P-frames, except that B-frames interpolate data contained in the following frame as well as the preceding frame. As a result, B-frames usually provide more compression than P-frames. Typically, every 15th frame or so is an I-frame. P-frames and B-frames might follow an I-frame as follows: IBBPBBPBBPBB(I). The order and number of frames in the sequence can be varied.
Since B and P frames depend on adjacent frames it is necessary that when the STB receives a new channel, it receives a full I-frame before the new channel can be shown. The average time for switching between channels therefore depends on the length of time between I-frames. Typically, for MPEG-2 IPTV content, the length of time is around 0.5 seconds. For MPEG-4 part 10 IPTV content, the length of time between I-frames can be several seconds.
The media stream includes payload data and metadata. The payload data is the media data itself, and is decoded and shown by the receiver. Payload data typically comprises frames as described above. The metadata includes all other data in the media stream. This may be, for example, data describing the payload data, or information establishing signalling between two peers. In order to facilitate handling of the media stream, the media stream is sent in “fragments”. Fragments are discrete portions of the media stream containing both the payload data and the metadata.
A buffer containing fragments is illustrated in FIG. 3. A fragment may contain both metadata about the media stream, and payload data from the media stream itself. A P2P logic function (in, for example, a STB) requests fragments from other P2P peers. In the example of FIG. 3 the P2P logic is writing fragment number 21 into the buffer and fragment number 17 is sent to the video decoder.
In multi-source networks such as P2P networks or redundant networks, a peer node obtains data by sending a request message to other peers and/or media injectors. It is possible for a peer node, having identified other nearby peers and/or media injectors capable of providing a particular channel, to request all fragments containing frames of that channel from all suitable peers. In other words, the peer node may opt for a “give me everything” strategy. The nearby peers or redundant transmitters will then send all available data to the peer node. This is a good strategy to ensure that all of the initial data required is received, but results in a very inefficient use of network resources.
The method works well for obtaining static data over a P2P network or a redundant network, for example in file sharing applications or distributing VoD. However, for real time data transfer, such as IPTV broadcasts, this would lead to a large amount of unnecessary data being sent which could reduce the effective bandwidth of the network.